home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / oper_sys / presto / prest_04.lha / src / callstate.h < prev    next >
C/C++ Source or Header  |  1989-06-06  |  1KB  |  38 lines

  1. #define CS_MAXARGS    8
  2. class Callstate  {
  3.     PFany    cs_func;        // what we should call
  4.     int    cs_argc;        // number of longwords to call
  5.     Objany  cs_obj;                 // "this" arg (vax callg needs it here)
  6.     int    cs_argvs[CS_MAXARGS];    // longwords to push on the call
  7.     int    *cs_argvd;        // if we need more than
  8.                     // MAXARGS, shmalloc here.
  9.     int    cs_len;            // how much space available (in words)
  10. public:
  11.     Callstate()
  12.         {;}            // satisfy compiler
  13.     ~Callstate();
  14.     inline void init();
  15.     void reinit()            // do nothing
  16.         {;}
  17.     void set(PFany f, int argc, int* argv);
  18.     void call(int *sp = 0, Objany o = 0);
  19.     void print(ostream& = cout);
  20. friend ostream& operator<<(ostream&, Callstate&);    
  21. };
  22.  
  23.  
  24.  
  25. //
  26. // We don't want to have a constructor here, cuz it will get automatically
  27. // called by Thread constructor, even when we are reusing old ones.
  28. // The whole set  "secret" mechanisms that initialize constructors are really
  29. // a pain.
  30. //
  31. inline void
  32. Callstate::init()
  33. {
  34.     cs_len = CS_MAXARGS;        // storage optimized for this
  35.     cs_argvd = 0;
  36. }    
  37.     
  38.